import { registAttrFun } from './attr';
import { registClassFun } from './class';
import { registCssFun } from './css';
import { registDataFun } from './data';
import { registEmptyFun } from './empty';
import { registEventFun } from './event';
import { registHtmlFun } from './html';
import { registKeywordMarkFun } from './keywordMark';
import { registRenderToHtmlFun } from './renderToHtml';
import { registRenderToStringFun } from './renderToString';
import { registTextFun } from './text';
import { registValFun } from './val';

export const registFunction = (Element) => {
  var functionMap = {};
  Element.registerFunction = (key, fn) => {
    Element.prototype[key] = functionMap[key] = fn;
  };
  registAttrFun(Element);
  registClassFun(Element);
  registCssFun(Element);
  registDataFun(Element);
  registEmptyFun(Element);
  registEventFun(Element);
  registHtmlFun(Element);
  registKeywordMarkFun(Element);
  registRenderToStringFun(Element);
  registRenderToHtmlFun(Element);
  registTextFun(Element);
  registValFun(Element);
};
